import axios from 'axios';

// 创建一个 axios 实例
const instance = axios.create({
    baseURL: 'http://localhost:8000',
    timeout: 10000, // 请求超时时间
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'Authorization': 'Bearer'
    }
});

// 请求拦截器
instance.interceptors.request.use(
    config => {
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        return response.data;
    },
    error => {
        // 对响应错误做点什么
        if (error.response) {
            // 请求已发出但服务器响应的状态码不在 2xx 范围内
            console.error('Response Error:', error.response.data);
            console.error('Status Code:', error.response.status);
            console.error('Headers:', error.response.headers);
        } else if (error.request) {
            // 请求已发出但没有收到响应
            console.error('Request Error:', error.request);
        } else {
            // 一些设置请求时发生错误
            console.error('Error Message:', error.message);
        }
        console.error('Config:', error.config);
        return Promise.reject(error);
    }
);

// 导出封装好的 axios 实例
export default instance;
